package com.ruoyi.kanban.service;

import java.util.List;
import com.ruoyi.kanban.domain.SequenceNumber;

/**
 * 流水号记录Service接口
 * 
 * @author ruoyi
 * @date 2025-01-15
 */
public interface ISequenceNumberService 
{
    /**
     * 查询流水号记录
     * 
     * @param id 流水号记录主键
     * @return 流水号记录
     */
    public SequenceNumber selectSequenceNumberById(Long id);

    /**
     * 查询流水号记录列表
     * 
     * @param sequenceNumber 流水号记录
     * @return 流水号记录集合
     */
    public List<SequenceNumber> selectSequenceNumberList(SequenceNumber sequenceNumber);

    /**
     * 新增流水号记录
     * 
     * @param sequenceNumber 流水号记录
     * @return 结果
     */
    public int insertSequenceNumber(SequenceNumber sequenceNumber);

    /**
     * 修改流水号记录
     * 
     * @param sequenceNumber 流水号记录
     * @return 结果
     */
    public int updateSequenceNumber(SequenceNumber sequenceNumber);

    /**
     * 批量删除流水号记录
     * 
     * @param ids 需要删除的流水号记录主键集合
     * @return 结果
     */
    public int deleteSequenceNumberByIds(Long[] ids);

    /**
     * 删除流水号记录信息
     * 
     * @param id 流水号记录主键
     * @return 结果
     */
    public int deleteSequenceNumberById(Long id);

    /**
     * 生成临时流水号（不更新数据库）
     * 
     * @param seqKey 流水号key
     * @param length 流水号长度
     * @return 临时流水号
     */
    public String generateTempSequenceNumber(String seqKey, int length);

    /**
     * 生成正式流水号（更新数据库）
     * 
     * @param seqKey 流水号key
     * @param length 流水号长度
     * @return 正式流水号
     */
    public String generateFormalSequenceNumber(String seqKey, int length);
}